#pragma once
#include <iostream>
#include <string>
#define _MATH_DEFINES_DEFINED
#include <math.h>
using namespace std;

class shape
{
protected:
	std::string id;
	double x,y;

public:
	shape(void);
	shape(double x, double y);
	shape(std::string id, double x, double y);
	double getX() { return x; }
	void setX(double x) { this->x=x; }
	double getY() { return y; }
	void setY(double y) { this->y=y; }
	virtual double volume() { return 0; }
	virtual double area() { return 0; }
	virtual void print() { std::cout << "shape" << std::endl; } 
	virtual ~shape(void);

	friend ostream &operator<<(ostream &stream, shape &o);
	friend istream &operator>>(istream &stream, shape &o);
	
};

